<?php
/**
 * <https://y.st./>
 * Copyright © 2015 Alex Yst <mailto:copyright@y.st>
 * 
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 * 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 * GNU General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with this program. If not, see <https://www.gnu.org./licenses/>.
**/

$xhtml = array(
	'title' => 'Minetyst will use mapgen v5',
	'body' => <<<END
</p>
	I&apos;ve decided to develop minetyst_game mainly for use with the v5 map generator.
	It&apos;s not that I like the look of maps generated by this generator best, but that I think it has the most to offer in terms of game play.
	Four map generators are currently included in Minetest.
	The singlenode generator intentionally spits out nothing but a map containing a single type of node.
	The point is then that subgame designers that want to build the world entirely using the Lua $a[API] don&apos;t have to fight the C++ map generator, wasting resources having the map generator build its complex landscape only to have to undo what it has done.
	The singlenode generator represents endless potential, but that&apos;s it: only potential, nothing realized.
	It&apos;s awesome to have this option, but it&apos;s not what I&apos;m going for.
	The v6 generator is the opposite.
	It is a very inflexible generator that builds the world in a very specific way.
	As a server administrator, you can adjust the sizes of things such as deserts and beaches.
	But as a subgame designer, adding your own types of areas such as biomes is very difficult and requires allowing the map generator to generate landscapes that you are going to overwrite yourself.
	That leaves us with the v5 and v7 generators.
	Don&apos;t let the names fool you; v5 was named after the algorithm used before v6, which v5 now partially employs, but the v5 generator is actually newer than the v7 generator and takes on some of its best qualities that did not exist prior to v7.
	The v5 and v7 map generators both create blank slate world by default, though not the same sort of blank slate world the singlenode generator creates.
	Rather, v5 and v7 generate the shape of the terrain, but nothing you would expect to see on the surface.
	There is no dirt, there are no trees.
	No beaches or deserts layered in sand.
	Everything you see on the surface is made of stone or water.
	Well, mostly.
	v5 additionally adds small patches of dirt and gravel.
	However, we don&apos;t have only the default blank slate worlds to work with.
	The v5 and v7 map generators also give us the undocumented <code>minetest.register_biome()</code> function I found <a href="/en/weblog/2015/03-March/22.xhtml">two days ago</a>.
	With this, we can easily define biomes that the map generator will generate on the surface with a depth down through y=-31.
	At y=-32 and below, the map generator seems to ignore biomes and do whatever it feels like.
	This is fine, but must be taken into account when choosing which generator to use.
	The v7 generator seems to offer more interesting shapes both above and below the surface, but the v5 generator offers more types of nodes below the surface.
</p>
</p>
	When I say I&apos;m mainly going to focus on the v5 map generator in minetyst_game, I don&apos;t mean that I won&apos;t do what it takes to support the other map generators.
	I will define all the map generator aliases to make sure each map generator reaches its full potential.
	In fact, I&apos;ll use the existing aliases in other map generators as a template for setting up my initial biomes in v5 and v7.
	However, if the node shows up in v5, I may not makes sure it shows up elsewhere.
	For example, gravel spawns naturally in v5 and in v6, but it may not be made available in v7.
	The &quot;default:*&quot; nodes will be added using a biome, so they may not be made available in v6.
	This isn&apos;t unlike minetest_game though, which makes most nodes unavailable to any map that isn&apos;t using the v6 generator.
</p>
</p>
	My speech is still free.
	I am <a href="/a/canary.txt">not under a gag order</a>.
</p>
END
);
